package com.cool.service.sysmanage;

import com.cool.bo.sysmanage.stuff.LoginSuccessResponseDataBo;
import com.cool.po.sysmanagepo.RolePo;
import com.cool.po.sysmanagepo.StaffPo;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * 账户接口
 *
 * @author Jiangmanman
 * @date 2020/07/24
 */
public interface StaffService {
    /**
     * 通过账户密码得到账户信息
     *
     * @param username 用户名
     * @param password 密码
     * @return {@link StaffPo }
     * @author Jiangmanman
     * @date 2020/07/25
     */
    StaffPo selectByAccountMsg(String username, String password);

    /**
     * 根据实体类分页
     *
     * @param staffPo 分页数据
     * @return {@link PageInfo<StaffPo> }
     * @author Jiangmanman
     * @date 2020/07/27
     */
    PageInfo<StaffPo> accordingToEntityClass(StaffPo staffPo);

    /**
     * 根据主键帐户删除
     *
     * @param id id
     * @return {@link Integer }
     * @author Jiangmanman
     * @date 2020/07/27
     */
    Integer accordingToPrimaryKeyAccountRemoved(Integer id);

    /**
     * 更新账户信息
     *
     *
     * @param id
     * @param staffPo 员工阿宝
     * @return {@link Integer }
     * @author Jiangmanman
     * @date 2020/07/27
     */
    Integer updateAccountInformation(Integer id, StaffPo staffPo);

    /**
     * 添加账户信息
     *
     * @param staffPo 员工阿宝
     * @return {@link Integer }
     * @author Jiangmanman
     * @date 2020/07/27
     */
    Integer addAccountInformation(StaffPo staffPo);

    PageInfo<StaffPo> fuzzyQuery(StaffPo staffPo);

    Integer insert(StaffPo staffPo);

    Integer updateStatusByPrimaryKey(Integer state, Integer id);

    List<LoginSuccessResponseDataBo.Menus> selectMsgByStaffId(Integer staffId);

    List<String> getAllPermissionByRoleId(Integer staffId);

    StaffPo selectByUsernameAndPassword(String username, String password);

    List<RolePo> queryAllRoleByStaffId(Integer staffId);
}
